package com.yaorange.nongjt.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yaorange.common.annotation.Excel;
import com.yaorange.common.core.domain.BaseEntity;

/**
 * 合格证打印列对象 njt_agricultural_product_certification
 * 
 * @author hzliu
 * @date 2025-09-27
 */
public class NjtAgriculturalProductCertification extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 账号 */
    @Excel(name = "账号")
    private String account;

    /** 生产主体 */
    @Excel(name = "生产主体")
    private String productionEntity;

    /** 法人姓名 */
    @Excel(name = "法人姓名")
    private String legalPersonName;

    /** 省 */
    @Excel(name = "省")
    private String province;

    /** 市 */
    @Excel(name = "市")
    private String city;

    /** 区/县 */
    @Excel(name = "区/县")
    private String district;

    /** 镇/乡 */
    @Excel(name = "镇/乡")
    private String town;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String detailedAddress;

    /** 生产地址 */
    @Excel(name = "生产地址")
    private String productionAddress;

    /** 食用农产品名称 */
    @Excel(name = "食用农产品名称")
    private String productName;

    /** 重量（数量） */
    @Excel(name = "重量", readConverterExp = "数=量")
    private BigDecimal quantity;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 合格方式 */
    @Excel(name = "合格方式")
    private String certificationMethod;

    /** 检验机构 */
    @Excel(name = "检验机构")
    private String inspectionAgency;

    /** 检测报告 */
    @Excel(name = "检测报告")
    private String testReport;

    /** 开具日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开具日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date issueDate;

    /** 合格证标号 */
    @Excel(name = "合格证标号")
    private String certificateNumber;

    /** 打印次数 */
    @Excel(name = "打印次数")
    private Long printCount;

    /** 扫描次数 */
    @Excel(name = "扫描次数")
    private Long scanCount;

    /** 操作人 */
    @Excel(name = "操作人")
    private String operator;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setAccount(String account) 
    {
        this.account = account;
    }

    public String getAccount() 
    {
        return account;
    }

    public void setProductionEntity(String productionEntity) 
    {
        this.productionEntity = productionEntity;
    }

    public String getProductionEntity() 
    {
        return productionEntity;
    }

    public void setLegalPersonName(String legalPersonName) 
    {
        this.legalPersonName = legalPersonName;
    }

    public String getLegalPersonName() 
    {
        return legalPersonName;
    }

    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }

    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }

    public void setDistrict(String district) 
    {
        this.district = district;
    }

    public String getDistrict() 
    {
        return district;
    }

    public void setTown(String town) 
    {
        this.town = town;
    }

    public String getTown() 
    {
        return town;
    }

    public void setDetailedAddress(String detailedAddress) 
    {
        this.detailedAddress = detailedAddress;
    }

    public String getDetailedAddress() 
    {
        return detailedAddress;
    }

    public void setProductionAddress(String productionAddress) 
    {
        this.productionAddress = productionAddress;
    }

    public String getProductionAddress() 
    {
        return productionAddress;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setQuantity(BigDecimal quantity) 
    {
        this.quantity = quantity;
    }

    public BigDecimal getQuantity() 
    {
        return quantity;
    }

    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }

    public void setCertificationMethod(String certificationMethod) 
    {
        this.certificationMethod = certificationMethod;
    }

    public String getCertificationMethod() 
    {
        return certificationMethod;
    }

    public void setInspectionAgency(String inspectionAgency) 
    {
        this.inspectionAgency = inspectionAgency;
    }

    public String getInspectionAgency() 
    {
        return inspectionAgency;
    }

    public void setTestReport(String testReport) 
    {
        this.testReport = testReport;
    }

    public String getTestReport() 
    {
        return testReport;
    }

    public void setIssueDate(Date issueDate) 
    {
        this.issueDate = issueDate;
    }

    public Date getIssueDate() 
    {
        return issueDate;
    }

    public void setCertificateNumber(String certificateNumber) 
    {
        this.certificateNumber = certificateNumber;
    }

    public String getCertificateNumber() 
    {
        return certificateNumber;
    }

    public void setPrintCount(Long printCount) 
    {
        this.printCount = printCount;
    }

    public Long getPrintCount() 
    {
        return printCount;
    }

    public void setScanCount(Long scanCount) 
    {
        this.scanCount = scanCount;
    }

    public Long getScanCount() 
    {
        return scanCount;
    }

    public void setOperator(String operator) 
    {
        this.operator = operator;
    }

    public String getOperator() 
    {
        return operator;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("account", getAccount())
            .append("productionEntity", getProductionEntity())
            .append("legalPersonName", getLegalPersonName())
            .append("province", getProvince())
            .append("city", getCity())
            .append("district", getDistrict())
            .append("town", getTown())
            .append("detailedAddress", getDetailedAddress())
            .append("productionAddress", getProductionAddress())
            .append("productName", getProductName())
            .append("quantity", getQuantity())
            .append("unit", getUnit())
            .append("certificationMethod", getCertificationMethod())
            .append("inspectionAgency", getInspectionAgency())
            .append("testReport", getTestReport())
            .append("issueDate", getIssueDate())
            .append("certificateNumber", getCertificateNumber())
            .append("printCount", getPrintCount())
            .append("scanCount", getScanCount())
            .append("operator", getOperator())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
